AdaStreams: A Type-Based Programming Extension for Stream-Parallelism with Ada 2005
نویسندگان
چکیده
Because multicore CPUs have become the standard with all major hardware manufacturers, it becomes increasingly important for programming languages to provide programming abstractions that can be mapped effectively onto parallel architectures. Stream processing is a programming paradigm where computations are expressed as independent actors that communicate via data streams. The coarse-grained parallelism exposed in stream programs facilitates such an efficient mapping of actors onto the underlying hardware. In this paper we propose a type-based stream programming extension to Ada 2005. AdaStreams is a type-hierarchy for actor-specification together with a run-time system that supports the execution of stream programs on multicore architectures. AdaStreams is non-intrusive in the sense that no change of an Ada 2005 programming language implementation is required. Legacy-code can be mixed with a stream-parallel application, and the use of sequential legacy code with actors is supported. Unlike previous approaches, AdaStreams allows creation and subsequent execution of stream programs at run-time. We have implemented AdaStreams for Intel multicore architectures. We provide initial experimental results that show the effectiveness of our approach on an Intel X86-64 quadcore processor. The initial release of our work is available for download at [1].
منابع مشابه
Tasklettes - A Fine Grained Parallelism for Ada on Multicores
The widespread use of multi-CPU computers is challenging programming languages, which need to adapt to be able to express potential parallelism at the language level. In this paper we propose a new model for fine grained parallelism in Ada, putting forward a syntax based on aspects, and the corresponding semantics to integrate this model with the existing Ada tasking capabilities. We also propo...
متن کاملObjektorientierte Stromprogrammierung
With multicore chips, parallelism becomes mainstream. However, most programming languages address parallelism at an abstraction level that is too low – thus, implementing and optimizing parallel applications is still difficult and error-prone. This thesis presents concepts enabling stream programming in object-oriented languages. Stream programming is capable of easily exploiting parallelism an...
متن کاملOpenMP Tasking Model for Ada: Safety and Correctness
The safety-critical real-time embedded domain increasingly demands the use of parallel architectures to fulfill performance requirements. Such architectures require the use of parallel programming models to exploit the underlying parallelism. This paper evaluates the applicability of using OpenMP, a widespread parallel programming model, with Ada, a language widely used in the safety-critical d...
متن کاملAdvances in Parallel-Stage Decoupled Software Pipelining Leveraging Loop Distribution, Stream-Computing and the SSA Form
Decoupled Software Pipelining (DSWP) is a program partitioning method enabling compilers to extract pipeline parallelism from sequential programs. Parallel Stage DSWP (PS-DSWP) is an extension that also exploits the data parallelism within pipeline filters. This paper presents the preliminary design of a new PS-DSWP method capable of handling arbitrary structured control flow, a slightly better...
متن کاملUsing Object-Oriented Methods in Ada 95 to Implement Linda
This paper describes an implementation of Linda for Ada 95. The new capabilities of object oriented programming and programming by extension are used to define an elegant, type safe and easy to use interface to Linda. The implementation provides more of the functionality of Linda than Ada-Linda for Ada 83. A short presentation of the Linda model and a programming example are also included.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010